/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						       adv_move_booster.h

	$Header: /game/adv_move_booster.h $

	$NoKeywords: $

 ************************************************************************/

#ifndef ADV_MOVE_BOOSTER_H_INCLUDED
#define ADV_MOVE_BOOSTER_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "stationary_adventure_object.h"

// --------------------------------------------------------
// all objects which give an army a timed boost to movement
//  -------------------------------------------------------
class t_adv_move_booster : public t_stationary_adventure_object
{
public:
	t_adv_move_booster(  std::string const& source );

	virtual void		activate_trigger( t_army* army, t_adv_map_point const& point, 
		                                   t_direction direction, t_adventure_frame* frame );
	virtual float		ai_value( t_adventure_ai const& ai, t_creature_array const& army, int move_cost ) const;
	virtual std::string get_balloon_help() const;
	virtual void		get_bonus( t_creature_array const& army, int &amount, int &days ) const;

protected:
	void show_dialog( t_army* army, int amount, int days,
		              t_level_map_point_2d const& point ) const;
};

// --------------------------------------------------------
// all objects which give an army a timed boost to movement
//  -------------------------------------------------------
class t_adv_pathfinder : public t_adv_move_booster
{
public:
	t_adv_pathfinder( std::string const& source );

	virtual void		activate_trigger( t_army* army, t_adv_map_point const& point, 
		                                   t_direction direction, t_adventure_frame* frame );
	
	void				get_bonus( t_creature_array const& army, int &amount, int &days ) const;
};


#endif // ADV_MOVE_BOOSTER_H_INCLUDED